#ifndef GRID_H
#define GRID_H

#include <vector>
#include <utility>

class Grid {
public:
	Grid(int rows, int cols);

	void addObstacle(int row, int col);
	bool isObstacle(int row, int col) const;
	std::vector<std::pair<int, int>> getNeighbors(const std::pair<int, int>& position) const;
	double cost(const std::pair<int, int>& from, const std::pair<int, int>& to) const;
	int getRows() const;
	int getCols() const;

private:
	int rows_;
	int cols_;
	std::vector<std::vector<bool>> obstacles_;
};

#endif
